package management;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 学生类：存储学生基本信息，关联该学生的所有成绩
 */
public class Student implements Serializable {
    private static final long serialVersionUID = 1L;
    
    private String studentId;   // 学号（唯一标识）
    private String name;        // 学生姓名（用String处理）
    private String className;   // 班级（用String处理）
    // 新增：关联该学生的所有成绩，体现“学生-成绩”的1:N关系
    private List<Score> studentScores = new ArrayList<>();

    // 构造方法
    public Student(String studentId, String name, String className) {
        this.studentId = studentId;
        this.name = name;
        this.className = className;
    }

    // 新增：添加学生的成绩（同步维护关联关系）
    public void addStudentScore(Score score) {
        this.studentScores.add(score);
    }

    // Getter（含新增的成绩列表）
    public String getStudentId() { return studentId; }
    public String getName() { return name; }
    public String getClassName() { return className; }
    public List<Score> getStudentScores() { return studentScores; }

    // 重写toString：包含学生关联的成绩数量
    @Override
    public String toString() {
        return "学号：" + studentId + " | 姓名：" + name + " | 班级：" + className + 
               " | 已选课程数：" + studentScores.size();
    }
}